package mc.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.collections.FactoryUtils;
import org.apache.commons.collections.list.LazyList;

public class Swiadczenie {

	private int id;
	private Pacjent pacjent = new Pacjent();
	private Lekarz lekarz = new Lekarz();
	private boolean refundacja;
	private Date data;
	private List<Usluga_na_swiadczeniu> uslugi_na_swiadczeniu = LazyList.decorate(new ArrayList(),FactoryUtils.instantiateFactory(Usluga_na_swiadczeniu.class));
	private Double wartosc;
	private int platnosc;
	public int getPlatnosc() {
		return platnosc;
	}
	public void setPlatnosc(int platnosc) {
		this.platnosc = platnosc;
	}

	private int version;
	
	public int getVersion() {
		return version;
	}
	public void setVersion(int version) {
		this.version = version;
	}


	public void addUsluga(Usluga_na_swiadczeniu usluga){
		List<Usluga_na_swiadczeniu> l=this.getUslugi_na_swiadczeniu();
		
		boolean czydodawac=true;
		for(int i=0;i<l.size();i++){
			Usluga_na_swiadczeniu u=(Usluga_na_swiadczeniu)l.get(i);
			if(u.getId_ze_slownika()==usluga.getId_ze_slownika()){
				int ilosc=u.getIlosc();
				u.setIlosc(ilosc+usluga.getIlosc());
				u.setSuma(u.getIlosc()*u.getCena());
				czydodawac=false;
			}
		}
		if(czydodawac) l.add(usluga);
		
		
		double suma=0;
		for(int i=0;i<l.size();i++){
			suma=suma+((Usluga_na_swiadczeniu)(l.get(i))).getSuma();
			}
		this.setWartosc(suma);
	}
	
	public void delUsluga(int pozycja){
		
		List<Usluga_na_swiadczeniu> li=this.getUslugi_na_swiadczeniu();
		if(!li.isEmpty())
			li.remove(pozycja);

		if(!li.isEmpty()){
			double suma=0;
			for(int i=0;i<li.size();i++){
				suma=suma+((Usluga_na_swiadczeniu)(li.get(i))).getSuma();
				}
			this.setWartosc(suma);
			}
		
	}
	



	public List<Usluga_na_swiadczeniu> getUslugi_na_swiadczeniu() {
		return uslugi_na_swiadczeniu;
	}
	public void setUslugi_na_swiadczeniu(List<Usluga_na_swiadczeniu> uslugi_na_swiadczeniu) {
		this.uslugi_na_swiadczeniu = uslugi_na_swiadczeniu;
	}

	public Date getData() {
		return data;
	}
	public void setData(Date data) {
		this.data = data;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public Lekarz getLekarz() {
		return lekarz;
	}
	public void setLekarz(Lekarz lekarz) {
		this.lekarz = lekarz;
	}
	public Pacjent getPacjent() {
		return pacjent;
	}
	public void setPacjent(Pacjent pacjent) {
		this.pacjent = pacjent;
	}
	public boolean isRefundacja() {
		return refundacja;
	}
	public void setRefundacja(boolean refundacja) {
		this.refundacja = refundacja;
	}
	
	public Double getWartosc() {
		return wartosc;
	}

	public void setWartosc(Double wartosc) {
		this.wartosc = wartosc;
	}
	

	
}